home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / mui / bcc_src.lha / Parser / test / App.bc < prev    next >
Encoding:
Text File  |  1997-06-05  |  7.2 KB  |  265 lines

  1. #include <proto/dos.h>
  2. #include <proto/lowlevel.h>
  3. #include <intuition/imageclass.h>
  4.  
  5. #include "App.bh"
  6.  
  7. void myputch( void );
  8.  
  9. static const char *centr[] = {
  10.     "Port 1 (mouse)",
  11.     "Port 2 (game)",
  12.     NULL
  13. };
  14.  
  15. cleardata Method App::App() :
  16.         MUIA_Application_Author, "RafaĆ® Mantiuk",
  17.         MUIA_Application_Base, "JOYTEST",
  18.         MUIA_Application_Title, "JoyTest",
  19.         MUIA_Application_Version, "$VER: JOYTEST 1.0 "__AMIGADATE__,
  20.         MUIA_Application_Copyright, "Copyright (c)1997, RafaĆ® Mantiuk",
  21.         MUIA_Application_Description, "Joystick test.",
  22.         SubWindow, data->win = WindowObject,
  23.             MUIA_Window_Title, "Joystick test v1.0",
  24.             MUIA_Window_ID, MAKE_ID('M', 'A', 'I', 'N'),
  25.             WindowContents, GroupObject,
  26.                 MUIA_Background, MUII_WindowBack,
  27.                 MUIA_Group_Horiz, TRUE,
  28.                 Child, GroupObject, 
  29.                     Child, data->cycle = CycleObject,
  30.                         MUIA_Cycle_Entries, centr,
  31.                         MUIA_Cycle_Active, 1,        
  32.                         MUIA_CycleChain, TRUE,
  33.                         MUIA_Background, MUII_TextBack,
  34.                     End,
  35.                     Child, data->inf = TextObject,
  36.                         MUIA_Background, MUII_TextBack,
  37.                     End,
  38.                     Child, HVSpace,
  39.                     Child, GroupObject,
  40.                         MUIA_Group_Columns, 3,
  41.                         Child, HVSpace,
  42.                         Child, data->up = ImageObject,
  43.                             MUIA_Image_Spec, "6:11",
  44.                             MUIA_Frame, MUIV_Frame_InputList,
  45.                             MUIA_Image_FontMatch, TRUE,
  46.                             MUIA_Background, MUII_ButtonBack,
  47.                         End,
  48.                         Child, HVSpace,
  49.                         Child, data->left = ImageObject,
  50.                             MUIA_Image_Spec, "6:13",
  51.                             MUIA_Frame, MUIV_Frame_InputList,
  52.                             MUIA_Image_FontMatch, TRUE,
  53.                             MUIA_Background, MUII_ButtonBack,
  54.                         End,
  55.                         Child, HGroup,
  56.                             Child, data->trig = ImageObject,
  57.                                 MUIA_Image_Spec, "6:16",
  58.                                 MUIA_Frame, MUIV_Frame_InputList,
  59.                                 MUIA_Image_FontMatch, TRUE,
  60.                                 MUIA_Background, MUII_ButtonBack,
  61.                                 MUIA_ShortHelp, "First fire button",
  62.                             End,
  63.                             Child, data->strig = TextObject,
  64.                                 MUIA_Frame, MUIV_Frame_InputList,
  65.                                 MUIA_Background, MUII_ButtonBack,
  66.                                 MUIA_Text_Contents, "2nd",
  67.                                 MUIA_ShortHelp, "Second fire button",
  68.                             End,
  69.                         End,
  70.                         Child, data->right = ImageObject,
  71.                             MUIA_Image_Spec, "6:14",
  72.                             MUIA_Frame, MUIV_Frame_InputList,
  73.                             MUIA_Image_FontMatch, TRUE,
  74.                             MUIA_Background, MUII_ButtonBack,
  75.                         End,
  76.                         Child, HVSpace,
  77.                         Child, data->down = ImageObject,
  78.                             MUIA_Image_Spec, "6:12",
  79.                             MUIA_Frame, MUIV_Frame_InputList,
  80.                             MUIA_Image_FontMatch, TRUE,
  81.                             MUIA_Background, MUII_ButtonBack,
  82.                         End,
  83.                         Child, HVSpace,
  84.                     End,
  85.                     Child, HVSpace,
  86.                     Child, data->dval = TextObject,
  87.                         MUIA_Background, MUII_TextBack,
  88.                         MUIA_Text_PreParse, "\33c",
  89. //                        MUIA_Frame, MUIV_Frame_InputList,
  90.                         MUIA_ShortHelp, "Value returned by\nlowlevel.library/ReadJoyPort()",
  91.                     End,
  92.                 End,
  93.                 Child, BalanceObject,
  94.                 End,
  95.                 Child, GroupObject, 
  96.                     MUIA_Group_Columns, 2,
  97.                     Child, data->lup = ImageObject,
  98.                         MUIA_Image_Spec, "6:11",
  99.                         MUIA_Frame, MUIV_Frame_InputList,
  100.                         MUIA_Image_FontMatch, TRUE,
  101.                         MUIA_Background, MUII_ButtonBack,
  102.                     End,
  103.                     Child, data->EJGup = EJGObject,
  104.                     End,
  105.                     Child, data->ldown = ImageObject,
  106.                         MUIA_Image_Spec, "6:12",
  107.                         MUIA_Frame, MUIV_Frame_InputList,
  108.                         MUIA_Image_FontMatch, TRUE,
  109.                         MUIA_Background, MUII_ButtonBack,
  110.                     End,
  111.                     Child, data->EJGdown = EJGObject,
  112.                     End,
  113.                     Child, data->lleft = ImageObject,
  114.                         MUIA_Image_Spec, "6:13",
  115.                         MUIA_Frame, MUIV_Frame_InputList,
  116.                         MUIA_Image_FontMatch, TRUE,
  117.                         MUIA_Background, MUII_ButtonBack,
  118.                     End,
  119.                     Child, data->EJGleft = EJGObject,
  120.                     End,
  121.                     Child, data->lright =ImageObject,
  122.                         MUIA_Image_Spec, "6:14",
  123.                         MUIA_Frame, MUIV_Frame_InputList,
  124.                         MUIA_Image_FontMatch, TRUE,
  125.                         MUIA_Background, MUII_ButtonBack,
  126.                     End,
  127.                     Child, data->EJGright = EJGObject,
  128.                     End,
  129.                     Child, data->ltrig = ImageObject,
  130.                         MUIA_Image_Spec, "6:16",
  131.                         MUIA_Frame, MUIV_Frame_InputList,
  132.                         MUIA_Image_FontMatch, TRUE,
  133.                         MUIA_Background, MUII_ButtonBack,
  134.                         MUIA_ShortHelp, "First fire button",
  135.                     End,
  136.                     Child, data->EJGtrig = EJGObject,
  137.                     End,
  138.                     Child, data->lstrig = TextObject,
  139.                         MUIA_Frame, MUIV_Frame_InputList,
  140.                         MUIA_Background, MUII_ButtonBack,
  141.                         MUIA_Text_Contents, "2nd",
  142.                         MUIA_ShortHelp, "Second fire button",
  143.                     End,
  144.                     Child, data->EJGstrig = EJGObject,
  145.                     End,
  146.                 End,
  147.             End,
  148.         End
  149. {
  150.  
  151.     DoMethod( data->win, 
  152.         MUIM_Notify,MUIA_Window_CloseRequest,TRUE,
  153.         obj,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  154.  
  155.     DoMethod( data->left,
  156.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  157.         data->lleft, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  158.     DoMethod( data->right,
  159.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  160.         data->lright, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  161.     DoMethod( data->up,
  162.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  163.         data->lup, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  164.     DoMethod( data->down,
  165.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  166.         data->ldown, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  167.     DoMethod( data->trig,
  168.         MUIM_Notify, MUIA_Image_State, MUIV_EveryTime,
  169.         data->ltrig, 3, MUIM_Set, MUIA_Image_State, MUIV_TriggerValue );
  170.     DoMethod( data->strig,
  171.         MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
  172.         data->lstrig, 3, MUIM_Set, MUIA_Selected, MUIV_TriggerValue );
  173.  
  174.     set( data->win, MUIA_Window_Open, TRUE );
  175.  
  176. }
  177.  
  178.  
  179. Attribute Get App::Port
  180. {
  181.     GetAttr( MUIA_Cycle_Active, data->cycle, store );
  182. }
  183.  
  184.  
  185. Attribute Set App::State
  186. {
  187.  ULONG v, x;
  188.  STRPTR cont;
  189.  v = val  & JP_DIRECTION_MASK;
  190.  
  191.  
  192.     if( val != data->lastval ) {
  193.         RawDoFmt( "$%lx", (ULONG*)&val, myputch, data->txbuf );
  194.         set( data->dval, MUIA_Text_Contents, data->txbuf );
  195.     }
  196.     data->lastval = val;
  197.  
  198.     switch( val & JP_TYPE_MASK ) {
  199.         case JP_TYPE_JOYSTK:
  200.             cont = "3Joystick detected";
  201.             break;
  202.         case JP_TYPE_MOUSE:
  203.             cont = "Mouse detected";
  204.             break;
  205.         case JP_TYPE_GAMECTLR:
  206.             cont = "Game controller detected";
  207.             break;
  208.         default:
  209.             cont = "Unknown device";
  210.     }
  211.     if( data->lastcont != cont ) {
  212.         set( data->inf, MUIA_Text_Contents, cont );
  213.     }
  214.     data->lastcont = cont;
  215.  
  216.  
  217.     if( ( val & JP_TYPE_MASK ) == JP_TYPE_JOYSTK ) {
  218.  
  219.     if( v & JPF_JOY_UP ) {
  220.         set( data->up, MUIA_Image_State, IDS_SELECTED );
  221.         DoMethod( data->EJGup, MUIM_EJG_Anim, 1 );
  222.     }
  223.     else {
  224.         set( data->up, MUIA_Image_State, IDS_NORMAL );
  225.         DoMethod( data->EJGup, MUIM_EJG_Anim, 0 );
  226.     }
  227.     if( v & JPF_JOY_DOWN ) {
  228.         set( data->down, MUIA_Image_State, IDS_SELECTED );
  229.         DoMethod( data->EJGdown, MUIM_EJG_Anim, 1 );
  230.     }
  231.     else {
  232.         set( data->down, MUIA_Image_State, IDS_NORMAL );
  233.         DoMethod( data->EJGdown, MUIM_EJG_Anim, 0 );
  234.     }
  235.     if( v & JPF_JOY_LEFT ) {
  236.         set( data->left, MUIA_Image_State, IDS_SELECTED );
  237.         DoMethod( data->EJGleft, MUIM_EJG_Anim, 1 );
  238.     }
  239.     else {
  240.         set( data->left, MUIA_Image_State, IDS_NORMAL );
  241.         DoMethod( data->EJGleft, MUIM_EJG_Anim, 0 );
  242.     }
  243.     if( v & JPF_JOY_RIGHT ) {
  244.         set( data->right, MUIA_Image_State, IDS_SELECTED );
  245.         DoMethod( data->EJGright, MUIM_EJG_Anim, 1 );
  246.     }
  247.     else {
  248.         set( data->right, MUIA_Image_State, IDS_NORMAL );
  249.         DoMethod( data->EJGright, MUIM_EJG_Anim, 0 );
  250.     }
  251.  
  252.     x = val & JPF_BUTTON_RED ? 1 : 0;
  253.     set( data->trig, MUIA_Image_State, x ? IDS_SELECTED : IDS_NORMAL );
  254.     DoMethod( data->EJGtrig, MUIM_EJG_Anim, x );
  255.  
  256.     x = val & JPF_BUTTON_BLUE ? 1 : 0;
  257.     set( data->strig, MUIA_Selected, x );
  258.     DoMethod( data->EJGstrig, MUIM_EJG_Anim, x );
  259.  
  260.  
  261.     }
  262.  
  263. }
  264.  
  265.